package com.kimehwa.studyboot.basejava.generic;

import java.util.ArrayList;
import java.util.List;

public class genericDemo {


    public static void main(String[] args) {
        UserDao userDao = new UserDao();
        User user = userDao.get(new User());
        List<User> list = userDao.getList(new User());
        Object obj = new UserDao();
        // 从父类到子类 一些方法消失了
        //Java中父类强制转换成子类的原则：父类型的引用指向的
        // 是哪个子类的实例，就能转换成哪个子类的引用。
        UserDao userDao1 = (UserDao) obj;
        User user1 = userDao1.get(new User());

    }

}

class BaseDao<T> {

    public T get(T t) {
        return t;
    }

    public List<T> getList(T t) {
        return new ArrayList<>();
    }
}


class UserDao extends BaseDao<User> {

}

class User {

}

